This invention relates to coding techniques for use with magnetic storage media. Designs for magnetic storage media systems must simultaneously maximize the density of information stored on the media and ensure that the storage system has adequate error tolerance. These two goals are always in tension. The features of a read channel that maximize the permissible storage density on the storage media also tend to reduce the error tolerance of the storage device and read channel.
Storage density can be maximized with the use of a partial response maximum likelihood (PRML) read channel. A PRML read channel always includes a partial response filter and a maximum likelihood decoder. The partial response filter provides an output signal that represents a mathematical combination of the stored bits from a moving window of adjacent bits in the sequence of stored bits on the magnetic media. The output of the filter is then fed to a decoder that determines the sequence of bits most likely to have produced the filter output. Use of a partial response filter in the read channel permits higher density storage of data on the magnetic media. See H. Kobayashi, D. T. Tang, "Application of Partial-responsc Channel Coding to Magnetic Recording Systems", IBM Journal of Research & Development, July 1970, pp. 368-375.
The decoder in a PRML read channel uses a maximum-likelihood sequence detection algorithm such as the Viterbi algorithm. The decoder converts the output of the partial response filter into a sequence of binary values representing the sequence of bits stored onto the magnetic media. Methods for decoding PRML read channels using trellis decoders are shown, for example, in Jack W. Wolf & Gottfried Ungerboeck, "Trellis Coding for Partial Response Channels," IEEE Transactions on Communications, vol. COM-34, Aug. 1986, pp. 765-773, and G. David Forney, "The Viterbi Algorithm," Proceedings of the IEEE, March 1973, pp. 268-278, which are herein incorporated by reference.
Write and read channels for magnetic storage devices often employ encoding of the sequence of bits that is to be stored on the magnetic device. Encoding of the symbols to be recorded onto the magnetic storage media can be used to increase the noise tolerance of the entire system. The most common measure of noise signal tolerance of a trellis decoder is the minimum free squared Euclidean distance of the set of permissible paths through the trellis, d.sup.2.sub.free. The minimum free squared Euclidean distance measures the minimum difference in the path distance of any two paths in the trellis that start and end at the same node. One method of increasing the minimum free squared Euclidean distance of a read channel is to encode the sequence of symbols that are to be recorded onto the magnetic storage media. Encoding limits the set of permissible trellis paths and can be used to disallow alternative trellis paths that produce the worst case minimum free squared Euclidean distance measure. By disallowing these paths, the minimum free squared Euclidean distance of the remaining paths is improved.
Encoding, however, comes at a cost in that it expands the number of bits required to store a fixed amount of user source data on the disk. The rate of a code indicates the relationship between the number of bits of user data encoded and the number of bits of encoded data stored on the storage media. In a rate 5/6 code, five bits of user data are encoded into six bits of encoded data that are stored. It is always possible to increase the minimum free squared Euclidean distance of any encoding scheme by increasing the coding overhead and decreasing the rate of the code. Increasing the rate of the code used necessitates a decrease in the storage density that may be used.
One type of code that can be used for encoding is the class of Maximum Transition Run (MTR) codes. MTR codes have the property that the number of consecutive `1` symbols is limited to some maximum transition run length. In the non return to zero inverse (NRZI) convention often used in analysis of magnetic storage systems, a `1` symbol indicates the existence of a transition in the magnetic state stored, and a `0` symbol indicates that the current state is maintained. The MTR code used in the subject invention limits the maximum sequence of consecutive `1` symbols to two. Limiting the number of consecutive `1` symbols to two is equivalent to limiting the number of consecutive state transitions to two or less. Patterns of three or more consecutive transitions cause most of the errors in read channel detection systems, so using codes that eliminate these patterns produces significant error reduction dividends. See Jaekyun Moon & Barrett Brickner, "Maximum Transition Run Codes for Data Storage Systems," IEEE Transactions oil Magnetics, vol. 32, September 1996, pp. 3992-3994.
The central problem, therefore, for any designer of encoding and decoding channels for a storage device is to develop a coding procedure which maximizes the density of user data that may be stored on the magnetic media. This involves a trade-off between the coding rate used and the density of storage that may be achieved using any particular code. The designer's goal is to develop a code which maximizes the coding rate and provides a minimum free squared Euclidean distance that ensures the error detection margin required to support a particular storage density.